/**
 * Copyright &copy; 2013-2015 山东易科德软件有限公司 All rights reserved.
 */
package cn.net.ecode.modules.sys.dao;

import java.util.List;

import cn.net.ecode.common.persistence.CrudDao;
import cn.net.ecode.common.persistence.annotation.MyBatisDao;
import cn.net.ecode.modules.sys.entity.Company;
import cn.net.ecode.modules.sys.entity.Office;
import cn.net.ecode.modules.sys.entity.Role;
import cn.net.ecode.modules.sys.entity.User;
import cn.net.ecode.modules.sys.entity.UserDataScope;

/**
 * 二级管理员DAO接口
 * 
 * @author ThinkGem
 * @version 2014-8-19
 */
@MyBatisDao
public interface SecAdminUserDao extends CrudDao<User> {
	
	/**
	 * 根据用户查询角色数据
	 * @param userDataScope
	 * @return
	 */
	public List<Role> findUserRoleList(User user);
	
	/**
	 * 插入用户角色关联数据
	 * @param user
	 * @return
	 */
	public int insertUserRole(User user);

	/**
	 * 删除用户角色关联数据
	 * @param user
	 * @return
	 */
	public int deleteUserRole(User user);

	/**
	 * 根据用户查询控制权限数据
	 * @param user
	 * @return
	 */
	public List<UserDataScope> findUserDataScopeList(User user);

	/**
	 * 根据用户查询控制权限公司数据
	 * @param user 用户参数
	 * @return 
	 */
	public List<Company> findUserDataScopeCompanyList(User user);

	/**
	 * 根据用户查询控制权限组织数据
	 * @param user 用户参数
	 * @return 
	 */
	public List<Office> findUserDataScopeOfficeList(User user);
	
	/**
	 * 插入用户的数据权限
	 * @param user
	 * @return
	 */
	public int insertUserDataScope(User user);
	
	/**
	 * 删除用户的数据权限
	 * @param user
	 * @return
	 */
	public int deleteUserDataScope(User user);
}
